package com.it.springdoc.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 只扫描部分路径,推荐做法:
 * 少量接口 → 手动构建 Paths（需精确路径）。
 * 大量接口 → 用 springdoc.paths-to-match 或 GroupedOpenApi。
 * 隐藏敏感接口 → 直接使用 @Hidden 注解。
 */
@Configuration
public class OpenApiConfig {
    @Bean
    public OpenAPI customOpenAPI() {
        Info info = new Info() // contact 等更多参数
                .title("TestSpringDoc--title")
                .description("TestSpringDoc--description")
                .version("1.0.0");
        return new OpenAPI().info(info);
    }

    // 接口多,可以根据模块分组
    @Bean
    public GroupedOpenApi publicApi() {
        return GroupedOpenApi.builder()
                .group("TestGroup--1") // 组名
                .pathsToMatch("/api/**") //限制只扫描项目中 /api/** 路径下的接口生成文档（避免暴露不必要的接口）
                .build();
    }
}